"""
AIS Message Browser message field order
Copyright 2007 by Brian C. Lane <bcl@brianlane.com>
http://browser.aisparser.com
"""

# AIS Message field order -- This should go into another file
msg_order = {
    1 : [ 'msgid',
          'repeat',
          'userid',
          'nav_status',
          'rot',
          'sog',
          'pos_acc',
          'longitude',
          'latitude',
          'cog',
          'true',
          'utc_sec',
          'regional',
          'spare',
          'raim',
          'sync_state',
          'slot_timeout',
          'sub_message' ],
    2 : [ 'msgid',
          'repeat',
          'userid',
          'nav_status',
          'rot',
          'sog',
          'pos_acc',
          'longitude',
          'latitude',
          'cog',
          'true',
          'utc_sec',
          'regional',
          'spare',
          'raim',
          'sync_state',
          'slot_timeout',
          'sub_message' ],
    3 : [ 'msgid',
          'repeat',
          'userid',
          'nav_status',
          'rot',
          'sog',
          'pos_acc',
          'longitude',
          'latitude',
          'cog',
          'true',
          'utc_sec',
          'regional',
          'spare',
          'raim',
          'sync_state',
          'slot_increment',
          'num_slots',
          'keep' ],
    4 : [ 'msgid',
          'repeat',
          'userid',
          'utc_year',
          'utc_month',
          'utc_day',
          'utc_hour',
          'utc_minute',
          'utc_second',
          'pos_acc',
          'longitude',
          'latitude',
          'pos_type',
          'spare',
          'raim',
          'sync_state',
          'slot_timeout',
          'sub_message' ],
    5 : [ 'msgid',
          'repeat',
          'userid',
          'version',
          'imo',
          'callsign',
          'name',
          'ship_type',
          'dim_bow',
          'dim_stern',
          'dim_port',
          'dim_starboard',
          'pos_type',
          'eta',
          'draught',
          'dest',
          'dte',
          'spare'],
    6 : [ 'msgid',
          'repeat',
          'userid',
          'sequence',
          'destination',
          'retransmit',
          'spare',
          'app_id',
          'data'],
    7 : [ 'msgid',
          'repeat',
          'userid',
          'spare',
          'destid_1',
          'sequence_1',
          'destid_2',
          'sequence_2',
          'destid_3',
          'sequence_3',
          'destid_4',
          'sequence_4',
          'num_acks' ],
    8 : [ 'msgid',
          'repeat',
          'userid',
          'spare',
          'app_id',
          'data' ],
    9 : [ 'msgid',
          'repeat',
          'userid',
          'altitude',
          'sog',
          'pos_acc',
          'longitude',
          'latitude',
          'cog',
          'utc_sec',
          'regional',
          'dte',
          'spare',
          'assigned',
          'raim',
          'comm_state',
          'sotdma',               # NOTE: These are sub-structures...
          'itdma' ],              # NOTE: Not sure how PySWIG handles them
    10: [ 'msgid',
          'repeat',
          'userid',
          'spare1',
          'destination',
          'spare2' ],
    11: [ 'msgid',
          'repeat',
          'userid',
          'utc_year',
          'utc_month',
          'utc_day',
          'utc_hour',
          'utc_minute',
          'utc_second',
          'pos_acc',
          'longitude',
          'latitude',
          'pos_type',
          'spare',
          'raim',
          'sync_state',
          'slot_timeout',
          'sub_message' ],
    12: [ 'msgid',
          'repeat',
          'userid',
          'sequence',
          'destination',
          'retransmit',
          'spare',
          'message' ],
    13: [ 'msgid',
          'repeat',
          'userid',
          'spare',
          'destid_1',
          'sequence_1',
          'destid_2',
          'sequence_2',
          'destid_3',
          'sequence_3',
          'destid_4',
          'sequence_4',
          'num_acks' ],
    14: [ 'msgid',
          'repeat',
          'userid',
          'spare',
          'message' ],
    15: [ 'msgid',
          'repeat',
          'userid',
          'spare1',
          'destid1',
          'msgid1_1',
          'offset1_1',
          'spare2',
          'msgid1_2',
          'offset1_2',
          'spare3',
          'destid2',
          'msgid2_1',
          'offset2_1',
          'spare4',
          'num_reqs' ],
    16: [ 'msgid',
          'repeat',
          'userid',
          'spare1',
          'destid_a',
          'offset_a',
          'increment_a',
          'destid_b',
          'offset_b',
          'increment_b',
          'spare2',
          'num_cmds' ],
    17: [ 'msgid',
          'repeat',
          'userid',
          'spare1',
          'longitude',
          'latitude',
          'spare2',
          'msg_type',
          'station_id',
          'z_count',
          'seq_num',
          'num_words',
          'health',
          'data' ],
    18: [ 'msgid',
          'repeat',
          'userid',
          'regional1',
          'sog',
          'pos_acc',
          'longitude',
          'latitude',
          'cog',
          'true',
          'utc_sec',
          'regional2',
          'unit_flag',
          'display_flag',
          'dsc_flag',
          'band_flag',
          'msg22_flag',
          'mode_flag',
          'raim',
          'comm_state',
          'sotdma',                    # NOTE: These are sub-structs
          'itdma' ],                   # NOTE: not sure how pySWIG handles them
    19: [ 'msgid',
          'repeat',
          'userid',
          'regional1',
          'sog',
          'pos_acc',
          'longitude',
          'latitude',
          'cog',
          'true',
          'utc_sec',
          'regional2',
          'name',
          'ship_type',
          'dim_bow',
          'dim_stern',
          'dim_port',
          'dim_starboard',
          'pos_type',
          'raim',
          'dte',
          'spare' ],
    20: [ 'msgid',
          'repeat',
          'userid',
          'spare1',
          'offset1',
          'slots1',
          'timeout1',
          'increment1',
          'offset2',
          'slots2',
          'timeout2',
          'increment2',
          'offset3',
          'slots3',
          'timeout3',
          'increment3',
          'offset4',
          'slots4',
          'timeout4',
          'increment4',
          'spare2',
          'num_cmds' ],
    21: [ 'msgid',
          'repeat',
          'userid',
          'aton_type',
          'name',
          'pos_acc',
          'longitude',
          'latitude',
          'dim_bow',
          'dim_stern',
          'dim_port',
          'dim_starboard',
          'pos_type',
          'utc_sec',
          'off_position',
          'regional',
          'raim',
          'virtual',
          'assigned',
          'spare1',
          'name_ext',
          'spare2' ],
    22: [ 'msgid',
          'repeat',
          'userid',
          'spare1',
          'channel_a',
          'channel_b',
          'txrx_mode',
          'power',
          'NE_longitude',
          'NE_latitude',
          'addressed_1',
          'SW_longitude',
          'SW_latitude',
          'addressed_2',
          'addressed',
          'bw_a',
          'bw_b',
          'tz_size',
          'spare2' ],
    23: [ 'msgid',
          'repeat',
          'userid',
          'spare1',
          'NE_longitude',
          'NE_latitude',
          'SW_longitude',
          'SW_latitude',
          'station_type',
          'ship_type',
          'spare2',
          'txrx_mode',
          'report_interval',
          'quiet_time',
          'spare3' ],
    24: [ 'msgid',
          'repeat',
          'userid',
          'part_number',
          'name',
          'ship_type',
          'vendor_id',
          'callsign',
          'dim_bow',
          'dim_stern',
          'dim_port',
          'dim_starboard',
          'spare',
          'flags' ],
    'sotdma' : [
          'sync_state',
          'slot_timeout',
          'sub_message' ],
    'itdma' : [
          'sync_state',
          'slot_inc',
          'num_slots',
          'keep_flag' ]
}

